package com.didi.gulimall.common.constant;

/***
 * 错误码和错误信息定义类
 * 1. 错误码定义规则为5为数字
 * 2. 前两位表示业务场景，最后三位表示错误码。例如：100001。10:通用 001:系统未知异常
 * 3. 维护错误码后需要维护错误描述，将他们定义为枚举形式
 * 错误码列表：
 *  10: 通用
 *      000：系统未知异常
 *      001：参数格式校验
 *      002: 请求流量过大
 *      003: 远程服务调用失败，请稍后再试
 *  11: 商品
 *      001: 金额不对请重新提交
 *      002: 携带token错误
 *  12: 订单
 *      001 至少选择一个商品进行购买
 *  13: 购物车
 *  14: 物流
 *  15: 用户
 *       001: 用户存在
 *       002: 手机号存在
 *       003: 验证码过期
 *       004： 验证码不正确
 *       005: 用户不存在
 *       006 : 密码不正确
 *       007: 请登录
 *       008: 地址异常
 *       009: 使用用户积分不能超过用户本身的积分
 *  16: 优惠
 *      001：当前没有秒杀的商品
 *      002：当前商品没有参加优惠
 *  17:秒杀
 *      001 当前会场已经结束
 *      002:超过限购数量
 *      003:随机码不正确
 *      004:当前商品没有参与秒杀
 *      005:秒杀失败
 *      006:当前用户没有秒杀成功的订单
 *  21：库存
 *  70: 购物车
 *      01 查询商品出错
 *  120: 第三方服务
 *       001：短信验证码频率太高
 *
 *
 */
public enum BizCodeEnume {
    /**
     *
     */
    UNKNOW_EXCEPTION(10000, "系统未知异常"),
    VAILD_EXCEPTION(10001, "参数格式校验失败"),
    TOO_MANY_REQUEST(10002, "请求流量过大"),
    REMOTE_CALL_FAILED(10003, "远程服务调用失败，请稍后再试"),
    PRODUCT_UP_EXCEPTION(11000, "商品上架异常"),
    AMOUNT_VERIFICATION(11001, "金额校验失败，请重新提交"),
    SECURITY_CHECK(11002, " 携带token不对，请刷新页面重新提交"),
    CHOOSE_AT_LEAST_ONE_PRODUCT(12001, " 请至少选择一个商品进行购买"),
    USER_EXIST_EXCEPTION(15001, "用户存在"),
    PHONE_EXIST_EXCEPTION(15002, "手机号存在"),
    VERIFICATION_CODE_EXPIRED(15003, "验证码过期,请重新获取"),
    INCORRECT_VERIFICATION_CODE(15004, "验证码不正确，请重新输入"),
    USER_DOES_NOT_EXIST(15005, "会员信息不纯在，请核对后再试一下"),
    INCORRECT_PASSWORD(15006, "密码不正确，请核对后再试一下"),
    PLEASE_SIGN_IN(15007, "请先进行登录"),
    ADDRESS_IS_ABNORMAL(15008, "拿不到改地址信息"),
    ILLEGAL_USE_OF_POINTS(15009, "使用用户积分不能超过用户本身的积分"),
    NO_SECKILL_PRODUCTS(16001, "当前没有秒杀的商品"),
    CHECK_OFFER_ERROR(16002, "当前商品没有参加优惠"),
    SPIKE_OVER(17001, "当前会场已经结束"),
    EXCEED_PURCHASE_LIMIT(17002, "超过限购数量"),
    RANDOM_CODE_IS_INCORRECT(17003, "携带随机码不正确，请刷新页面重新提交"),
    NOT_PARTICIPATE_IN_SPIKE(17004, "当前商品没有参加秒杀"),
    SPIKE_FAILED(17005, "抢占锁失败，不要灰心再试一次"),
    NO_SUCCESSFUL_ORDER(17006, "当前用户没有秒杀成功的订单"),
    NOT_FIND_PRODUCT(70001, "查询商品失败，请重新添加"),
    RPC_FIND_PRODUCT(70001, "远程查询商品失败，查询操作"),
    NO_STOCK_EXCEPTION(21000, "商品库存不足"),
    LOGINACCT_PASSWORD_INVAILD_EXCEPTION(15003, "账号密码错误"),
    FREQUENT_OPERATION(120001, "验证码获取频率太高，稍后再试");

    private int code;
    private String msg;

    BizCodeEnume(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public int getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }
}
